package code

import scala.collection.mutable.ArrayBuffer

import org.joda.time.DateTime



class PlanificacionDiaria (dia: Int, mes : Int, anio : Int) {
	var fecha = new DateTime(anio, mes, dia)
	var estaPlanificada = false
	var empleados : ArrayBuffer[Planificacion]= new ArrayBuffer[Planificacion]

	
	def planificar(persona : Empleado, horaEntrada : Int, horaSalida: Int){
	var planif = new Planificacion(persona, horaEntrada, horaSalida)
	if (personaNoEstaPlanificada(persona) && 
	    esPlanificacionValida(planif) && 
	    !persona.tieneRestriccionParaDia(fecha.getDayOfMonth()))
		this.empleados.append(planif) 
	}
	
	def esPlanificacionValida(planif : Planificacion) = {
	  ((planif.horaDeSalida - planif.horaDeEntrada > 4) && (planif.horaDeSalida - planif.horaDeEntrada < 8))
	}
	
	def personaNoEstaPlanificada(persona : Empleado)={
	  !empleados.exists(e => e.persona.legajo == persona.legajo)
	}
}